def get_monthday(year,month):
    if month==1 or month==3 or month==5 or month==7 or month==8 or month==10 or month==12:
        return 31
    elif month==4 or month==6 or month==9 or month==11:
        return 30
    else:
        if(year%4==0 and year%100!=0) or year%400==0:
            return 29
        else:
            return 28
    return 0

def get_weekday(year,month,first):
    m=get_monthday(year,month)%7
    return (first+m)%7

def problem_19():
    ini=1
    result=0
    for y in range(1900,2001):
        for m in range(1,13):
            n=get_weekday(y,m,ini)
            if(n==0):
                if (y==1900 and m==12) or (not y==1900) and (not(y==2000 and m==12)):
                    result=result+1
                ini=n
    return result

import calendar
first=[calendar.weekday(year,month,1) for year in range(1901,2001) for month in range(1,13)]
print(first.count(0))

from datetime import date
print(sum([1 for year in range(1901,2001) for mouth in range(1,13) if date(year,mouth,1).weekday()==6]))